1const array = [1,2,3,4,5];
2
3const even = (element) => element === 2;
4
5console.log(array.some(even));
6//true
7console.log(array.every(event));
8//false
유의점
every에는 공허참이라는 개념이 적용되어 있다. 뜻은 기본적으로 true값을 가진다는 것이다.
default true → callback fn에서 하나라도 false라면 false로 종료
만약 빈 리스트 []
라면 반복문이 실행되지 않고 그대로 종료되면서 true를 리턴하게 된다.
반대로 some은 기본적으로 false값을 가진다.
활용 예
vlidate
1export const validatePurchaseMoney = (value) => {
2 if (isZero(value)) {
3 throw new Error(ERROR_MESSAGE.ZERO_PURCHASE_MONEY);
4 }
5
6 if (isNotNumber(value)) {
7 throw new Error(ERROR_MESSAGE.INVALID_PURCHASE_MONEY_TYPE);
8 }
9 ...
10};
11
12---
13
14const purchasedMoneyValidator = [
15 { test: isZero, errorMsg: ERROR_MESSAGE.ZERO_PURCHASE_MONEY },
16 { test: isNotNumber, errorMsg: ERROR_MESSAGE.INVALID_PURCHASE_MONEY_TYPE },
17 ...
18]
19
20const validatePurchaseMoney = value => purchasedMoneyValidator.every(({ test, errorMsg }) => {
21 if (test(value)) throw new Error(errorMsg);
22 return true;
23})